// source --> https://sakinahoutreach.org/wp-content/plugins/sd-donations/assets/js/crowdfunding.js var Crowdfunding = {}; var delay = (function(){ var timer = 0; return function(callback, ms){ clearTimeout (timer); timer = setTimeout(callback, ms); }; })(); Crowdfunding.Campaign = ( function($) { var customPriceField, priceOptions, submitButton, currentPrice, startPledgeLevel; var formatCurrencySettings = {}; function priceOptionsHandler() { customPriceField.keyup(function() { var price = $( this ).asNumber( formatCurrencySettings ); delay( function() { if ( price < startPledgeLevel ) Crowdfunding.Campaign.findPrice( startPledgeLevel ); else Crowdfunding.Campaign.findPrice( price ); }, 1000); }); priceOptions.click(function(e) { var pledgeLevel = $(this), price = Crowdfunding.Campaign.parsePrice( $(this) ); if ( pledgeLevel.hasClass( 'inactive' ) ) return; $(this).find( 'input[type="radio"]' ).attr( 'checked', true ); customPriceField .val( price ) .formatCurrency( formatCurrencySettings ); }); } return { init : function() { formatCurrencySettings = { 'decimalSymbol' : atcfSettings.campaign.currency.decimal, 'digitGroupSymbol' : atcfSettings.campaign.currency.thousands, 'symbol' : '' } currentPrice = 0; customPriceField = $( '#contribute-modal-wrap #atcf_custom_price' ); priceOptions = $( '#contribute-modal-wrap .atcf-price-option' ); submitButton = $( '#contribute-modal-wrap a.edd-add-to-cart' ); Crowdfunding.Campaign.setBasePrice(); priceOptionsHandler(); }, findPrice : function( price ) { var foundPrice = { price : 0, el : null }; customPriceField .val( price ) .formatCurrency( formatCurrencySettings ); currentPrice = price; priceOptions.each( function( index ) { var price = price = Crowdfunding.Campaign.parsePrice( $(this) ); var pledgeLevel = parseFloat( price ); if ( ( currentPrice >= pledgeLevel ) && ! $( this ).hasClass( 'inactive' ) ) { var is_greater = pledgeLevel > foundPrice.price; if ( is_greater ) { foundPrice = { price : pledgeLevel, el : $(this) } } } }); foundPrice.el.find( 'input[type="radio"]' ).attr( 'checked', true ); }, setBasePrice : function() { var basePrice = { price : 1000000000, // something crazy el : null } priceOptions.each( function( index ) { if ( ! $( this ).hasClass( 'inactive' ) ) { var price = Crowdfunding.Campaign.parsePrice( $(this) ); if ( parseFloat( price ) < parseFloat( basePrice.price ) ) { basePrice = { price : price, el : $( this ) } } } }); startPledgeLevel = parseFloat( basePrice.price ); if ( null != basePrice.el ) basePrice.el.find( 'input[type="radio"]' ).attr( 'checked', true ); if ( atcfSettings.campaign.isDonations != 1 ) { customPriceField .val( startPledgeLevel ) .formatCurrency( formatCurrencySettings ); } }, parsePrice : function( el ) { var price = el.data( 'price' ); price = price.split( '-' ); price = price[0]; return price; } } }(jQuery)); Crowdfunding.SubmitCampaign = ( function($) { function addReward() { var rewardContainer = $( '.atcf-submit-campaign-rewards' ); var reward = rewardContainer.find( 'div:last-of-type' ); $( '.atcf-submit-campaign-add-reward-button' ).click(function(e) { e.preventDefault(); var newReward = reward.clone(); var count = rewardContainer.find( '.atcf-submit-campaign-reward' ).length; newReward.removeClass( 'static' ); newReward.find( 'input:not([type=hidden]), select, textarea' ).val( '' ); newReward.find( 'input, select, textarea' ).each(function() { var label = $( this ).prev().attr( 'for' ); var name = $( this ).attr( 'name' ); name = name.replace( /\[(\d+)\]/, '[' + parseInt( count ) + ']'); if ( label ) { label = label.replace( /\[(\d+)\]/, '[' + parseInt( count ) + ']'); } $( this ) .attr( 'name', name ) .attr( 'id', name ) .attr( 'readonly', false ); $( this ).prev() .attr( 'for', label ); newReward.insertBefore( $( '.atcf-submit-campaign-add-reward' ) ).show(); }); }); } function removeReward() { $( 'body' ).on( 'click', '.atcf-submit-campaign-reward-remove a', function(e) { e.preventDefault(); var reward = $( this ).parents( '.atcf-submit-campaign-reward' ); var rewardContainer = $( '.atcf-submit-campaign-rewards' ); var count = rewardContainer.find( '.atcf-submit-campaign-reward' ).length; if ( count == 1 || reward.hasClass( 'static' ) ) return alert( atcfSettings.submit.i18n.oneReward ); reward.remove(); }); } function endDate() { $( '.atcf-toggle-neverending' ).click(function(e) { e.preventDefault(); $( 'input[id="length"]' ).attr( 'disabled', ! $( 'input[id="length"]' ).attr( 'disabled' ) ); }); if ( $( '.atcf-toggle-neverending' ).hasClass( 'active' ) ) $( '.atcf-toggle-neverending' ).trigger( 'click' ); } return { init : function() { addReward(); removeReward(); endDate(); $( '#norewards' ).click(function() { $( '.atcf-submit-campaign-rewards' ).toggle(); }); if ( $( '#norewards' ).is( ':checked' ) ) { $( '.atcf-submit-campaign-rewards' ).hide(); } } } }(jQuery)); jQuery(document).ready(function($) { if ( atcfSettings.pages.is_submission ) Crowdfunding.SubmitCampaign.init(); if ( atcfSettings.pages.is_campaign ) Crowdfunding.Campaign.init(); }); // source --> https://sakinahoutreach.org/wp-content/themes/helpinghands/wp-advanced-search/js/scripts.js // Global constants var __WPAS = { FORM : "#wp-advanced-search.wpas-ajax-enabled", CONTAINER : "#wpas-results", INNER : "#wpas-results-inner", DEBUG_CONTAINER : "#wpas-debug", PAGE_FIELD : "#wpas-paged", FORM_ID: "", KEY_PREFIX: "wpasInstance_", HASH: "", STORAGE_KEY: function() { return this.KEY_PREFIX + this.FORM_ID; } }; jQuery(document).ready(function($) { __WPAS.FORM_ID = $('#wpas-id').val(); __WPAS.HASH = $(__WPAS.FORM).data('ajax-url-hash'); var CURRENT_PAGE = 1; /** * Event listeners */ $('form.wpas-autosubmit :input').change(function() { $(this).parents('form').submit(); }); $('button.wpas-clear').click(function(e) { e.preventDefault(); $(this).parents('form').find(':input') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .removeAttr('selected'); $(this).parents('form.wpas-autosubmit').each(function() { $(this).submit(); return false; }); }); $('input.wpas-reset').click(function(e){ e.preventDefault(); $(this).parents('form')[0].reset(); $(this).parents('form.wpas-autosubmit').each(function() { $(this).submit(); return false; }); }); /** * AJAX Functionality */ if ($(__WPAS.FORM).length == 0) { log("No AJAX-enabled WPAS search form detected on page."); return; } if ($(__WPAS.CONTAINER).length == 0) { log("No container with ID #wpas-results found on page. Results cannot be shown"); return; } var DEBUG_ON = ($(__WPAS.FORM).hasClass('wpas-debug-enabled')) ? true : false; var SHOW_DEFAULT = ($(__WPAS.FORM).data('ajax-show-default')) ? true : false; var T = (DEBUG_ON) ? 500 : 0; if (DEBUG_ON && $(__WPAS.DEBUG_CONTAINER).length == 0) { log("WPAS_DEBUG is enabled but no container with ID #wpas-debug was found " + "on this page. Debug information cannot be shown."); return; } var ajaxLoader = { container: "wpas-load", load_btn: "wpas-load-btn", load_btn_text: "", load_img: "wpas-loading-img", load_img_url: "", init : function(form) { this.load_btn_text = $(form).data('ajax-button'); this.load_img_url = $(form).data('ajax-loading'); $(__WPAS.CONTAINER).append(this.create()); }, create: function() { var html = "
"; html += "
"; html += "
"; html += "
"; return html; }, showButton: function() { $('#'+this.load_btn).addClass('active').show(); }, hideButton: function() { $('#'+this.load_btn).removeClass('active').hide(); }, showImage: function() { $('#'+this.load_img).show(); }, hideImage: function() { $('#'+this.load_img).hide(); } }; $(__WPAS.CONTAINER).append("
"); ajaxLoader.init(__WPAS.FORM); var storage = null; if (window.location.hash.slice(1) == __WPAS.HASH) { storage = JSON.parse(localStorage.getItem("wpasInstance_"+__WPAS.FORM_ID)); } if (storage != null) { log("localStorage found"); loadInstance(); } else { setPage(1); setRequest($(__WPAS.FORM).serialize()); } if ($(__WPAS.CONTAINER).length != 0) { if (storage != null) { $(__WPAS.CONTAINER).html(storage.results); } else if (SHOW_DEFAULT) { // Show results by default if attribute is set sendRequest($(__WPAS.FORM).serialize(), CURRENT_PAGE); } } // Submits the form // Reset current page to 1 function submitForm(form) { setPage(1); var form_data = $(form).serialize(); setRequest(form_data); $(__WPAS.INNER).empty(); sendRequest(form_data, CURRENT_PAGE); } // Set AJAX request to fetch results // Appends results to the container function sendRequest(data, page) { ajaxLoader.hideButton(); ajaxLoader.showImage(); jQuery.ajax({ type: 'POST', url: WPAS_Ajax.ajaxurl, data: { action: 'wpas_ajax_load', page: page, form_data: data }, success: function(data, textStatus, XMLHttpRequest) { response = JSON.parse(data); setTimeout(function() { appendHTML(__WPAS.INNER, response.results); ajaxLoader.hideImage(); updateHTML(__WPAS.DEBUG_CONTAINER,response.debug); CURRENT_PAGE = response.current_page; var max_page = response.max_page; log("Current Page: "+CURRENT_PAGE+", Max Page: "+max_page); if (max_page == 0 || CURRENT_PAGE == max_page) { ajaxLoader.hideButton(); } else { ajaxLoader.showButton(); } window.location.hash = __WPAS.HASH; storeInstance(); unlockForm(); }, T); }, error: function(MLHttpRequest, textStatus, errorThrown){ console.log(errorThrown); } }); } function storeInstance() { var instance = { request: REQUEST_DATA, form: getFormValues(), results : getResults(), page: CURRENT_PAGE }; instance = JSON.stringify(instance); localStorage.setItem(__WPAS.STORAGE_KEY(), instance); } function addArrayValues(values, input) { var name = $(input).attr('name'); var value = $(input).val(); if (typeof values[name] == 'undefined') { values[name] = []; } if ($(input).is(":checked")) values[name].push(value); return values; } function getFormValues() { var values = {}; $(__WPAS.FORM).find(':input').not(':button, :submit, :reset').each(function() { if ($(this).attr('type') == 'checkbox') { values = addArrayValues(values, this) } else { values[$(this).attr('name')] = $(this).val(); } }); return values; } function getResults() { return $(__WPAS.CONTAINER).html(); } function loadInstance() { var instance = localStorage.getItem(__WPAS.STORAGE_KEY()); instance = JSON.parse(instance); if (instance == null) return; if (instance.form) loadForm(instance.form); if (instance.results) loadResults(instance.results); if (instance.page) setPage(instance.page); if (instance.request) setRequest(instance.request); } function loadForm(form_values) { $(__WPAS.FORM).find(':input').not(':button, :submit, :reset').each(function() { var value = form_values[$(this).attr('name')]; if ($(this).attr('type') == 'checkbox') { if (value.indexOf( $(this).val() ) >= 0) { $(this).prop('checked',true); } else { $(this).prop('checked',false); } } else { $(this).val(value); } }); } function loadResults(results) { $(__WPAS.CONTAINER).html(results); } function lockForm() { $(__WPAS.FORM).addClass('wpas-locked'); $(__WPAS.FORM).find('input:submit').attr('disabled', 'disabled'); } function formLocked() { return $(__WPAS.FORM).hasClass('wpas-locked'); } function unlockForm() { $(__WPAS.FORM).removeClass('wpas-locked'); $(__WPAS.FORM).find('input:submit').removeAttr('disabled'); } function appendHTML(el, content) { $(el).append(content); } function updateHTML(el, content) { $(el).html(content); } function setPage(pagenum) { CURRENT_PAGE = pagenum; $(__WPAS.PAGE_FIELD).val(pagenum); } function setRequest(request) { REQUEST_DATA = request; } function log(msg) { if (DEBUG_ON) console.log("WPAS: " + msg); } // AJAX Event Listeners $(__WPAS.FORM).submit(function(e) { e.preventDefault(); if (formLocked()) return; lockForm(); submitForm(this); }); $(document).on('click', '#'+ajaxLoader.load_btn+'.active', function(e){ setPage(parseInt(CURRENT_PAGE) + 1) sendRequest(REQUEST_DATA,CURRENT_PAGE); }); });